<template>
  <div class="app-container">
    <!--表单-->
    <el-form :inline="true" class="demo-form-inline">
      <el-form-item>
        <el-date-picker
          v-model="searchObj.begin"
          type="date"
          placeholder="选择开始日期"
          value-format="yyyy-MM-dd" />
      </el-form-item>
      <el-form-item>
        <el-date-picker
          v-model="searchObj.end"
          type="date"
          placeholder="选择截止日期"
          value-format="yyyy-MM-dd" />
      </el-form-item>
      <el-button
        :disabled="btnDisabled"
        type="primary"
        icon="el-icon-search"
        @click="showChart()">查询</el-button>
    </el-form>
    <!-- 栅格系统： 前端显示器分辨率一般不同，为了能够适配，前端框架可以自动根据显示器分辨率划分固定数量的单元格
    如果我们的标签希望任何分辨率下展示的大小都一样，可以指定所占单元格的数量

    el-row：表示elmentui的一行，一行由24个单元格组成(由elementui自动计算)
       el-col： 行中的一个列，通过span指定占用一行的多少个单元格
    -->
    <el-row>
      <el-col :span="12">
        <div id="register_num" class="chart" style="height:500px;" />
      </el-col>
      <el-col :span="12">
        <div id="login_num" class="chart" style="height:500px;" />
      </el-col>
    </el-row>
    <el-row>
      <el-col :span="12">
        <div id="video_view_num" class="chart" style="height:500px;" />
      </el-col>
      <el-col :span="12">
        <div id="course_num" class="chart" style="height:500px;" />
      </el-col>
    </el-row>
  </div>
</template>
<script>
import statisticsApi from '@/api/statistics'
import echarts from 'echarts'
export default {
  data() {
    return {
      btnDisabled: false,
      searchObj: {}
    }
  },
  methods: {
    initChart(id, title, dates, nums) {
      var loginNumChart = echarts.init(document.getElementById(id))
      var option = {
        title: {
          text: title
        },
        xAxis: {
          type: 'category',
          data: dates
        },
        yAxis: {
          type: 'value'
        },
        series: [
          {
            data: nums,
            type: 'line',
            smooth: true
          }
        ]
      }

      option && loginNumChart.setOption(option)
    },
    showChart() {
      statisticsApi.getDaliyInfo(this.searchObj.begin, this.searchObj.end).then(r => {
        console.log(r.data)
        // 获取需要展示的数据集合 使用echarts渲染到页面中的容器内展示
        this.initChart('register_num', '新增用户', r.data.dates, r.data.registerNums)
        this.initChart('login_num', '日活用户', r.data.dates, r.data.loginNums)
        this.initChart('video_view_num', '视频播放', r.data.dates, r.data.videoViewNums)
        this.initChart('course_num', '新增课程', r.data.dates, r.data.courseNums)
      })
    }
  }
}
</script>
